perm filename E.DIF[E,ALS]2 blob
sn#143233 filedate 1975-02-06 generic text, type T, neo UTF8
1) E vs. 2) E[CSP,SYS] SRCCOM 02-06-75 08:04 PAGES 1,1
******** E **** PAGE 1 LINE 235
1) C00547 00233 QFAST
1) C00552 00234 PDL, PATCH, PAT, ZVARS, LEGTAB
1) C00562 ENDMK
1) C⊗;
*** E[CSP,SYS] *** PAGE 1 LINE 235
2) C00549 00233 PDL, PATCH, PAT, ZVARS, LEGTAB
2) C00551 00234 SPOOL
2) C00559 ENDMK
2) C⊗;
******** E **** PAGE 172 LINE 17
1) SUBSIZ←←44
1) SUBBUF←←45 ; to contain substitution string start
1) ;FREE STORAGE MACROS
*** E[CSP,SYS] *** PAGE 172 LINE 18
2) SUBBUF←←44 ; to contain substitution string start
2) ;FREE STORAGE MACROS
******** E **** PAGE 173 LINE 108
1) MOVNI B,SRSIZ*5-4
1) TLZ F,TF1
*** E[CSP,SYS] *** PAGE 173 LINE 108
2) MOVNI B,SRSIZ*5-1
2) TLZ F,TF1
******** E **** PAGE 173 LINE 154
1) ADDI B,SRSIZ*5-4+1
1) MOVEM B,SUBSIZ(E) ;Substitution string size
1) MOVE TT,SUBTMP ;Temporary store of \ bucky bits
*** E[CSP,SYS] *** PAGE 173 LINE 154
2) MOVE TT,SUBTMP ;Temporary store of \ bucky bits
******** E **** PAGE 175 LINE 13
1) MOVE T,QCHR
1) CAIGE T,3 ;To save work
1) PUSHJ P,SFLUSH
*** E[CSP,SYS] *** PAGE 175 LINE 13
2) PUSHJ P,SFLUSH
******** E **** PAGE 175 LINE 24
1) MOVE T,QCHR
1) CAILE T,1
1) E vs. 2) E[CSP,SYS] SRCCOM 02-06-75 08:04 PAGES 175,175
1) JRST QFAST
1) TRON F,ARG!REL
*** E[CSP,SYS] *** PAGE 175 LINE 22
2) TRON F,ARG!REL
******** E **** PAGE 207 LINE 6
1) SRCPG2: MOVEI T,SBKNL
1) MOVE D,[SRCPGB,,SRCPGF]
*** E[CSP,SYS] *** PAGE 207 LINE 6
2) MOVEI T,SBKNL
2) MOVE D,[SRCPGB,,SRCPGF]
******** E **** PAGE 232 LINE 29
1) MOVEI T,15 ;<CTRL><META><RETURN> COMES IN AS RETURN, <C><M><LINEFEED>
1) IDPB T,ESILBP
1) MOVEI T,612
1) IDPB T,ESILBP
1) FOO <(Comment here by >
*** E[CSP,SYS] *** PAGE 232 LINE 29
2) MOVEI T,615 ;;<CTRL><META><RETURN> COMES IN AS RETURN, <C><M><LINEFEED>
2) IDPB T,ESILBP
2) ; MOVEI T,612
2) ; IDPB T,ESILBP
2) FOO <(Comment here by >
******** E **** PAGE 232 LINE 51
1) FOOC <
1) π> ;CONTROL RETURN AT END OF NEW COMMENT POINTER AND CTRL π FOR COMMENT PAGE PUSHJ
1) MOVE T,[440600,,EDFIL]
*** E[CSP,SYS] *** PAGE 232 LINE 51
2) MOVEI T,215
2) IDPB T,ESILBP
2) FOOC <π> ;CONTROL RETURN AT END OF NEW COMMENT POINTER AND CTRL π FOR COMMENT PAGE PUSHJ
2) MOVE T,[440600,,EDFIL]
******** E **** PAGE 232 LINE 56
1) IDPB TT,ESILBP>
*** E[CSP,SYS] *** PAGE 232 LINE 57
2) CAIE TT,40
2) IDPB TT,ESILBP>
******** E **** PAGE 232 LINE 61
1) IDPB TT,ESILBP>
1) E vs. 2) E[CSP,SYS] SRCCOM 02-06-75 08:04 PAGES 232,232
*** E[CSP,SYS] *** PAGE 232 LINE 63
2) CAIE TT,40
2) IDPB TT,ESILBP>
******** E **** PAGE 232 LINE 67
1) IDPB TT,ESILBP>
*** E[CSP,SYS] *** PAGE 232 LINE 70
2) CAIE TT,40
2) IDPB TT,ESILBP>
******** E **** PAGE 232 LINE 72
1) IDPB TT,ESILBP>
*** E[CSP,SYS] *** PAGE 232 LINE 76
2) CAIE TT,40
2) IDPB TT,ESILBP>
******** E **** PAGE 232 LINE 76
1) FOO <P)
1) >
1) FOOC <∞WX>
1) FOO <M
1) > ↔ FOOC <V>
1) SKIPE ESCMTZ ;WORD AFTER ESCMTX BLOCK. SHOULD NOT HAVE BEEN WRITTEN INTO
*** E[CSP,SYS] *** PAGE 232 LINE 81
2) FOO <P)>
2) MOVEI T,15
2) IDPB T,ESILBP
2) FOOC <∞WX>
2) FOO <M>
2) MOVEI T,15 ↔ IDPB T,ESILBP
2) FOOC <V>
2) SKIPE ESCMTZ ;WORD AFTER ESCMTX BLOCK. SHOULD NOT HAVE BEEN WRITTEN INTO
******** E **** PAGE 232 LINE 84
1) ; OUTSTR [ASCIZ ↔
1) ;Type/edit your comment, then type <CTRL>G to return. ↔]
1) ; DPYPOS -1020 ;POSITION OFF THE SCREEN SO USER DOESNT HAVE TO SEE TRASH
1) ESGK: PUSHJ P,ESDBG ;DEBUG FEATURE
1) PTWRS9 [0↔ESCMTX]
*** E[CSP,SYS] *** PAGE 232 LINE 91
2) OUTSTR [ASCIZ ↔
2) Type/edit your comment, then type <CTRL>G to return. ↔]
2) DPYPOS -1020 ;POSITION OFF THE SCREEN SO USER DOESNT HAVE TO SEE TRASH
2) ;ESGK: PUSHJ P,ESDBG ;DEBUG FEATURE
1) E vs. 2) E[CSP,SYS] SRCCOM 02-06-75 08:04 PAGES 232,232
2) PTWRS9 [0↔ESCMTX]
******** E **** PAGE 232 LINE 92
1) DPYSIZ 10001
1) DPYPOS 1
1) ESDBG1: ILDB TT,T ;GET 9 BIT BYTE
1) JUMPE TT,[SNEAKW TT, ↔ POPJ P,]
1) TRZE TT,200 ;CONTROL BIT?
*** E[CSP,SYS] *** PAGE 232 LINE 99
2) DPYSIZ 30001
2) DPYPOS 1
2) ESDBG1: ILDB TT,T ;GET 9 BIT BYTE
2) JUMPE TT,[INCHRW TT ↔ POPJ P,]
2) TRZE TT,200 ;CONTROL BIT?
******** E **** PAGE 232 LINE 147
1) ESBAKB: ;BACK UP OVER THE FILE NAME
*** E[CSP,SYS] *** PAGE 232 LINE 154
2) ESCCR: ;GOT A '(Comment h' at beg of line. COMMENT POINTER
2) CAIE A,"(" ;DOUBLE CHECK
2) FATAL INTERNAL CONFUSION -- COMMENT POINTER WENT AWAY
2) FOR ZZZ ε <Comment here by ∀∀∀ is on page > <
2) JSP D,(D) ;GET THE CHARACTER
2) FATAL PREMATURE END OF COMMENT POINTER
2) IFN "ZZZ"-"∀",< ;CHECK THE CHARACTER AGAINST STRING EXCEPT FOR ∀'S
2) CAIE A,"ZZZ"
2) FATAL CONFUSION WHILE READING COMMENT POINTER. PLEASE REPORT TO SGK
2) >;IFN
2) >;FOR
2) MOVEI T,
2) ESCCR1: JSP D,(D) ;GET A CHARACTER
2) FATAL PREMATURE END OF COMMENT POINTER WHILE READING PAGE.
2)
2)
2) ESBAKB: ;BACK UP OVER THE FILE NAME
******** E **** PAGE 232 LINE 214
1) JRST .ILDB0 ;NOW MAKE UP BYTE POINTER, CHARACTER COUNT, AND DO IT
*** E[CSP,SYS] *** PAGE 232 LINE 237
2) MOVE B,(A) ;NOW GET FIRST WORD OF NEW LINE TO SEE IF IT IS COMMENT
2) CAMN B,["(Comm"]
2) JRST [ MOVE B,1(A) ;WIN. SEE IF NEXT WORD MAKES IT TOO
2) CAMN B,["ent h"]
2) JRST .+1 ;OH WELL
2) MOVEI D,ESCCR ;MUNG THIS SO WE WILL RETURN TO COMMENT HACKER
1) E vs. 2) E[CSP,SYS] SRCCOM 02-06-75 08:04 PAGES 232,232
2) ]
2) JRST .ILDB0 ;NOW MAKE UP BYTE POINTER, CHARACTER COUNT, AND DO IT
******** E **** PAGE 233 LINE 1
1) ;QFAST
1) QFAST: JUMPGE D,.+2
1) TRNN F,REL
1) SKIPA A,SRCL
1) ADD A,SRCL
1) PUSHJ P,SETARR
1) MOVE T,SRCOFF
1) MOVEI A,1
1) MOVEM A,JCNT ;Probably not needed
1) MOVE E,SAVEE ;This may have been changed
1) SETZB B,G
1) MOVE A,ARRLIN ;Set by SETARR to line for action
1) ADD A,[440700,,LLDESC] ;Location where text starts
1) HRRZM A,JPTR ;Location of source line
1) MOVE D,[440700,,BUF]
1) MOVEM D,JWPT ;Buffer pointer at start
1) MOVEI Q,SUBBUF(E) ;Substitution text location
1) ADD Q,[441100,,0] ;In 9-bit with META bit on
1) SETOM BUF
1) MOVE T,[BUF,,BUF+1]
1) BLT T,BUF+37 ;Set up buffer properly
1) MOVN B,SRCOFF ;Character position to start deletion
1) HRLZS B
1) ILDB C,A
1) IDPB C,D ;Copy text to deletion point
1) AOBJN B,.-2
1) MOVE T,SRCSIZ(E)
1) IBP A ;Index over replaced text
1) SOJG T,.-1 ;Count REPLACEMENTS
1) MOVE T,SUBSIZ(E) ;Get size of substitution string
1) ADD T,B
1) SUBI T,149 ;Test for possible overflow
1) JUMPG T,SUBOVE
1) MOVN T,SUBSIZ(E)
1) HRL B,T
1) ILDB C,Q
1) ANDI C,177 ;Remove the META bit
1) IDPB C,D
1) AOBJN B,.-3
1) MOVE T,B ;This will test for overflow again
1) SUBI T,149 ;Limit to LINE-BUFFER size
1) HRL B,T
1) ILDB C,A
1) E vs. 2) E[CSP,SYS] SRCCOM 02-06-75 08:04 PAGES 233,233
1) JUMPE C,.+4
1) IDPB C,D
1) AOBJN B,.-3
1) JRST SUBOVE
1) IDPB C,D
1) TLNE D,760000
1) JRST .-2 ;Pad out with nulls
1) ;Now we must give up the space originally used by the line
1) MOVE A,JPTR ;Location of line
1) LDB T,[111100,,1(A)] ;Get 2nd 9 bits from right of 1(A)
1) MOVNI T,(T) ;and do 1's complement of T
1) ADDM T,CHARS ;add this to # in CHARS or ATTSIZ.
1) HRRZ C,(A) ;Get line forward pointer
1) MOVEM C,JPTR ;and put it in JPTR.
1) MOVSI T,JPTR ;with JPTR location in left half
1) HLLM T,(C) ;of pointer for line pointed to.
1) PUSHJ P,FSGIVE ;Give up storage space.
1) ;Then we create a new line with proper pointers
1) ADDI G,2(B) ;Increase G by 2 + # of characters
1) ADDM G,CHARS ;Previously debited by the number in original line
1) LSH G,11 ;Move G to byte position.
1) IORI G,(B) ;IOR in the actual char count.
1) MOVEI B,-BUF+1+LLDESC(A) ;Number of words.
1) PUSHJ P,FSGET ;Get space to store line.
1) MOVSI TT,BUF ;Starting location of source
1) HRRI TT,LLDESC(A) ;and starting location of destination.
1) BLT TT,-2(T) ;and now BLT, ending at location -2(T)
1) MOVSI T,TXTCOD ;A fancy way to store 2 in left half!
1) HLLM T,-1(A) ;To 1st header word.
1) HRRZM G,1(A) ;Char. cnts in right of 3rd header word.
1) AOS T,TXTNUM
1) MOVEM T,2(A) ;To 4th header word.
1) HLRZ T,JLPT
1) CAIE T,PAGE
1) SKIPGE 1(T)
1) TRO F,UPDTXT ;Flag change in first line.
1) TRO F,WRITE
1) HRLI T,JLPT
1) MOVSM T,(A)
1) HRRM A,(T)
1) ;Update count and test for continuance
1) AOS SUBCNT
1) MOVE TT,QCHR
1) CAIN TT,3
1) JRST QFAST3 ;Repeat
1) SETZM QCHR ;Stop further action
1) POPJ P, ;and go back
1) QFAST3: AOS P
1) E vs. 2) E[CSP,SYS] SRCCOM 02-06-75 08:04 PAGES 233,233
1) MOVE T,@P
1) SUBI T,1
1) MOVEM T,@P
1) JRST SRCPG2
1) SUBOVE: OUTSTR [ASCIZ /
1) Substitution will cause line to exceed LINE-BUFFER size.
1) Do you want this? (Y or N) /]
1) ;PDL, PATCH, PAT, ZVARS, LEGTAB
*** E[CSP,SYS] *** PAGE 233 LINE 1
2) ;PDL, PATCH, PAT, ZVARS, LEGTAB
******** E **** PAGE 234 LINE 46
*** E[CSP,SYS] *** PAGE 234 LINE 39
2) ;SPOOL
2) ;The following code is designed to create a new file with an unusual name
2) ;and to copy the current page into this file and finally to spool and delete
2) ;this file with an alias name corresponding to the file from which the data came.
2) ;It does this the simplest possible way which is to COPY-ATTACH the page, do a
2) ;file switch to this new file (a <control>λ) then a <CONTROL>E, issue a spooling
2) command and then do a <CONTROL>H to get back.
2) SPOOL: MOVEI T,0
2) MOVEI TT,667
2) PTWR1W T
2) PTWR1W T
2) MOVEI TT,666
2) PTWR1W T
2) MOVEI TT,703 ;A <META><CONTROL>C to copy 510 lines
2) PTWR1W T
2) MOVEI TT,606 ;A <META><CONTROL>ε
2) PTWR1W T
2) SLEEP T ;To give the system time to empty the buffer
2) ;name must be inserted here
2) MOVEI TT,[ASCIZ \.LPT[SPL,SYS]/N/C\]
2) HRL TT,[440700]
2) PTWRS7 T
2) MOVEI TT,15 ;CR
2) PTWR1W T
2) MOVEI TT,12 ;LF
2) PTWR1W T
2) MOVEI TT,705 ;A <META><CONTROL>E to set the attached buffer down
2) PTWR1W T
2) MOVEI TT,710 ;A <META><CONTROL>H
2) PTWR1W T
2) PTYGET T
2) JRST SPOOL1
2) MOVEI TT,[ASCIZ /SPOOL /]
2) HRL TT,[440700]
1) E vs. 2) E[CSP,SYS] SRCCOM 02-06-75 08:04 PAGES 234,234
2) PTWRS7 T
2) ;
2) POPJ P, ;And that's that.